const { nitro1, nitro2, nitro3, break1, break2, 
    do360, shiftLeft, shiftRight } = require("./track_control");
const { usleep } = at;

// RIVER RUN 古老斗技场 激流勇进
// TRANSCONTINENTAL RACE 西部牧场 横贯大陆赛事
// THE CITY BY THE BAY 大桥海湾 临湾城市
// THE CAVE 高地穿梭 洞穴
// WHIRLWIND CURVE 西部牧场 旋风弯道
// THE PATH OF THE WIND 高地穿梭 风之小径
// DOWNTOWN RISE 大桥海湾 市中心高架桥
// RAT RACE 樱花港 急速之争
// ANCIENT WONDERS 沙漠迷雾 古老奇观
// THE WOLF'S DEN 古老斗技场 恶狼之穴
// STREET LIGHTS 大桥海湾 霓虹街道
// MOAT FINALE 樱花港 护城河决战
// PARADISE RESORT 热带天堂 天堂度假村
// MEIJI RUSH 樱花港 明治冲击
// INDUSTRIAL TOUR 樱花港 工业之旅
// GREEN URBAN PARK 樱花港 城市绿洲
// CANYON LAUNCH 西部牧场 峡谷飞驰
// PIER PRESSURE 热带天堂 桥墩压力
// COASTAL CRUISER 明珠港口 沿海巡游
// CAVE HEAT 神山垭口 洞穴热浪
// SAKURA CASTLE 樱花港 樱花城堡
// ANCIENT RUINS 高地穿梭 古代遗迹
// TUNNEL JAM 大桥海湾 拥堵隧道
// ROLLER COASTER RIDE 大桥海湾 云霄飞车
// SKYSCRAPER CITY 明珠港口 摩天楼之都
// THE ETERNAL CITY 古老斗技场 永恒之城
// CAPITAL OF THE WORLD 古老斗技场 世界大都会
// THE PEARL OF THE ORIENT 明珠港口 东方明珠
// MOUNTAIN POLES 神山垭口 山巅
// THUNDERING START 热带天堂 雷鸣之始
// BEACH LANDING 热带天堂 海滩登陆
// FROZEN ROUTE 神山垭口 冰封路径
// CITY TRAVEL 樱花港 城市穿梭
// REFINED FINISH 樱花港 完美收尾
// RUSH MINUTE 大桥海湾 尖峰时刻
// NEON NIGHTS 明珠港口 缤纷夜景
// ANCIENT CITY 古老斗技场 古代城市
// CLIFFHANGER 神山垭口 悬崖峭壁
// PANTHEON SPLIT 古老斗技场 万神殿岔路
// BUDDING START 樱花港 崭露头角
// GOLD RUSH 西部牧场 淘金狂飙
// THOUSAND MINARETS 沙漠迷雾 尖塔耸立
// INDUSTRIAL REVOLUTION 樱花港 工业革命
// URBAN BLAZE 沙漠迷雾 城市烈焰
// WILDLANDS 高地穿梭 荒地
// RIVER DELTA 沙漠迷雾 三角洲
// DIPPING DOWN 神山垭口 坠落
// DOWNHILL RUN 神山垭口 山地速降

exports.thepathofthewind = function(rate=null){
    if(rate == null)
        return 1;
    else if(rate == 3){
        nitro3();
    }
    else if(rate == 12){
        nitro3();
    }
    else if(rate == 16){
        usleep(1000000);
        shiftRight(1);
        usleep(500000);
        nitro2();
    }
    else if(rate == 21){
        shiftLeft(1);
        usleep(1000000);
        nitro3();
    }
    else if(rate == 25){
        shiftLeft(1);
    }
    else if(rate == 27){
        nitro2();
    }
    else if(rate == 31){
        break1();
    }
    else if(rate == 34){
        nitro3();
    }
    else if(rate == 37){
        break1();
    }
    else if(rate == 39){
        nitro3();
    }
    else if(rate == 44){
        nitro3();
    }
    else if(rate == 49){
        shiftLeft(1);
    }
    else if(rate == 51){
        nitro2();
    }
    else if(rate == 53){
        shiftRight(1);
        nitro3();
    }
    else if(rate == 57){
        shiftRight(1);
        nitro1();
    }
    else if(rate == 61){
        nitro2();
    }
    else if(rate == 66){
        break2(0.7);
        nitro2();
        shiftRight(1);
    }
    else if(rate == 71){
        nitro3();
    }
    else if(rate == 73){
        nitro2();
    }
    else if(rate == 75){
        nitro3();
    }
    else if(rate == 81){
        nitro2();
    }
    else if(rate == 83){
        nitro3();
    }
    else if(rate == 87){
        nitro1();
    }
    else if(rate == 93){
        shiftLeft(1);
        usleep(500000);
        nitro2();
    }
}
exports.airbornesurge = function (rate = null) {
    if (rate == null)
        return 1;
    else if (rate == 1) {
        nitro2();
    }
    else if (rate == 3) {
        nitro2();
    }
    else if (rate == 7) {
        shiftLeft(1);
    }
    else if (rate == 12) {
        nitro2(false);
    }
    else if (rate == 18) {
        break2(2.6);
    }
    else if (rate == 24) {
        nitro2();
    }
    else if (rate == 28) {
        nitro3();
    }
    else if (rate == 33) {
        shiftRight(1);
    }
    else if (rate == 40) {
        nitro2(false);
    }
    else if (rate == 46) {
        do360();
        nitro2(false);
    }
    else if (rate == 54) {
        break2(0.5);
        nitro2();
    }
    else if (rate == 61) {
        break2(0.5);
        do360();
        nitro2(false);
    }
    else if (rate == 70) {
        break1(0.8);
    }
    else if (rate == 73) {
        nitro2(false);
    }
    else if (rate == 78) {
        break1();
    }
    else if (rate == 80) {
        nitro2();
    }
    else if (rate == 85) {
        break2(1.8);
        nitro2();
    }
    else if (rate == 95) {
        nitro2(false);
    }
}